home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_texinfo.idb / usr / freeware / info / texinfo-1.z / texinfo-1
Text File  |  2001-07-06  |  49KB  |  1,046 lines

  1. This is texinfo, produced by makeinfo version 4.0 from texinfo.txi.
  2.  
  3. INFO-DIR-SECTION Texinfo documentation system
  4. START-INFO-DIR-ENTRY
  5. * Texinfo: (texinfo).           The GNU documentation format.
  6. * install-info: (texinfo)Invoking install-info. Update info/dir entries.
  7. * texi2dvi: (texinfo)Format with texi2dvi.      Print Texinfo documents.
  8. * texindex: (texinfo)Format with tex/texindex.  Sort Texinfo index files.
  9. * makeinfo: (texinfo)makeinfo Preferred.        Translate Texinfo source.
  10. END-INFO-DIR-ENTRY
  11.  
  12.   This file documents Texinfo, a documentation system that can produce
  13. both online information and a printed manual from a single source file.
  14.  
  15.   Copyright (C) 1988, 90, 91, 92, 93, 95, 96, 97, 98, 99 Free Software
  16. Foundation, Inc.
  17.  
  18.   This edition is for Texinfo version 4.0, 28 September 1999.
  19.  
  20.   Permission is granted to make and distribute verbatim copies of this
  21. manual provided the copyright notice and this permission notice are
  22. preserved on all copies.
  23.  
  24.   Permission is granted to copy and distribute modified versions of this
  25. manual under the conditions for verbatim copying, provided that the
  26. entire resulting derived work is distributed under the terms of a
  27. permission notice identical to this one.
  28.  
  29.   Permission is granted to copy and distribute translations of this
  30. manual into another language, under the above conditions for modified
  31. versions, except that this permission notice may be stated in a
  32. translation approved by the Free Software Foundation.
  33.  
  34. 
  35. File: texinfo,  Node: Top,  Next: Copying,  Up: (dir)
  36.  
  37. Texinfo
  38. *******
  39.  
  40.   Texinfo is a documentation system that uses a single source file to
  41. produce both online information and printed output.
  42.  
  43.   The first part of this master menu lists the major nodes in this Info
  44. document, including the @-command and concept indices.  The rest of the
  45. menu lists all the lower level nodes in the document.
  46.  
  47.   This is Edition 4.0 of the Texinfo manual, updated 28 September 1999.
  48.  
  49. * Menu:
  50.  
  51. * Copying::                     Your rights.
  52. * Overview::                    Texinfo in brief.
  53. * Texinfo Mode::                How to use Texinfo mode.
  54. * Beginning a File::            What is at the beginning of a Texinfo file?
  55. * Ending a File::               What is at the end of a Texinfo file?
  56. * Structuring::                 How to create chapters, sections, subsections,
  57.                                   appendices, and other parts.
  58. * Nodes::                       How to write nodes.
  59. * Menus::                       How to write menus.
  60. * Cross References::            How to write cross references.
  61. * Marking Text::                How to mark words and phrases as code,
  62.                                   keyboard input, meta-syntactic
  63.                                   variables, and the like.
  64. * Quotations and Examples::     How to write quotations, examples, etc.
  65. * Lists and Tables::            How to write lists and tables.
  66. * Indices::                     How to create indices.
  67. * Insertions::                  How to insert @-signs, braces, etc.
  68. * Breaks::                      How to force and prevent line and page breaks.
  69. * Definition Commands::         How to describe functions and the like
  70.                                   in a uniform manner.
  71. * Conditionals::                How to specify text for either TeX or Info.
  72. * Internationalization::
  73. * Defining New Texinfo Commands::
  74. * Hardcopy::                    How to convert a Texinfo file to a file
  75.                                   for printing and how to print that file.
  76. * Creating and Installing Info Files::
  77. * Command List::                All the Texinfo @-commands.
  78. * Tips::                        Hints on how to write a Texinfo document.
  79. * Sample Texinfo File::         A sample Texinfo file to look at.
  80. * Sample Permissions::          Tell readers they have the right to copy
  81.                                   and distribute.
  82. * Include Files::               How to incorporate other Texinfo files.
  83. * Headings::                    How to write page headings and footings.
  84. * Catching Mistakes::           How to find formatting mistakes.
  85. * Refilling Paragraphs::        All about paragraph refilling.
  86. * Command Syntax::              A description of @-Command syntax.
  87. * Obtaining TeX::               How to Obtain TeX.
  88. * Command and Variable Index::  A menu containing commands and variables.
  89. * Concept Index::               A menu covering many topics.
  90.  
  91.  
  92.  --- The Detailed Node Listing ---
  93.  
  94. Overview of Texinfo
  95.  
  96. * Reporting Bugs::              Submitting effective bug reports.
  97. * Using Texinfo::               Create printed or online output.
  98. * Info Files::                  What is an Info file?
  99. * Printed Books::               Characteristics of a printed book or manual.
  100. * Formatting Commands::         @-commands are used for formatting.
  101. * Conventions::                 General rules for writing a Texinfo file.
  102. * Comments::                    Writing comments and ignored text in general.
  103. * Minimum::                     What a Texinfo file must have.
  104. * Six Parts::                   Usually, a Texinfo file has six parts.
  105. * Short Sample::                A short sample Texinfo file.
  106. * Acknowledgements and History::  Contributors and genesis.
  107.  
  108. Using Texinfo Mode
  109.  
  110. * Texinfo Mode Overview::       How Texinfo mode can help you.
  111. * Emacs Editing::               Texinfo mode adds to GNU Emacs' general
  112.                                   purpose editing features.
  113. * Inserting::                   How to insert frequently used @-commands.
  114. * Showing the Structure::       How to show the structure of a file.
  115. * Updating Nodes and Menus::    How to update or create new nodes and menus.
  116. * Info Formatting::             How to format for Info.
  117. * Printing::                    How to format and print part or all of a file.
  118. * Texinfo Mode Summary::        Summary of all the Texinfo mode commands.
  119.  
  120. Updating Nodes and Menus
  121.  
  122. * Updating Commands::           Five major updating commands.
  123. * Updating Requirements::       How to structure a Texinfo file for
  124.                                   using the updating command.
  125. * Other Updating Commands::     How to indent descriptions, insert
  126.                                   missing nodes lines, and update
  127.                                   nodes in sequence.
  128.  
  129. Beginning a Texinfo File
  130.  
  131. * Four Parts::                  Four parts begin a Texinfo file.
  132. * Sample Beginning::            Here is a sample beginning for a Texinfo file.
  133. * Header::                      The very beginning of a Texinfo file.
  134. * Info Summary and Permissions::  Summary and copying permissions for Info.
  135. * Titlepage & Copyright Page::  Creating the title and copyright pages.
  136. * The Top Node::                Creating the `Top' node and master menu.
  137. * Software Copying Permissions::  Ensure that you and others continue to
  138.                                   have the right to use and share software.
  139.  
  140. The Texinfo File Header
  141.  
  142. * First Line::                  The first line of a Texinfo file.
  143. * Start of Header::             Formatting a region requires this.
  144. * setfilename::                 Tell Info the name of the Info file.
  145. * settitle::                    Create a title for the printed work.
  146. * setchapternewpage::           Start chapters on right-hand pages.
  147. * paragraphindent::             Specify paragraph indentation.
  148. * exampleindent::               Specify environment indentation.
  149. * End of Header::               Formatting a region requires this.
  150.  
  151. The Title and Copyright Pages
  152.  
  153. * titlepage::                   Create a title for the printed document.
  154. * titlefont center sp::         The `@titlefont', `@center',
  155.                                   and `@sp' commands.
  156. * title subtitle author::       The `@title', `@subtitle',
  157.                                   and `@author' commands.
  158. * Copyright & Permissions::     How to write the copyright notice and
  159.                                   include copying permissions.
  160. * end titlepage::               Turn on page headings after the title and
  161.                                   copyright pages.
  162. * headings on off::             An option for turning headings on and off
  163.                                   and double or single sided printing.
  164.  
  165. The `Top' Node and Master Menu
  166.  
  167. * Title of Top Node::           Sketch what the file is about.
  168. * Master Menu Parts::           A master menu has three or more parts.
  169.  
  170. Ending a Texinfo File
  171.  
  172. * Printing Indices & Menus::    How to print an index in hardcopy and
  173.                                   generate index menus in Info.
  174. * Contents::                    How to create a table of contents.
  175. * File End::                    How to mark the end of a file.
  176.  
  177. Chapter Structuring
  178.  
  179. * Tree Structuring::            A manual is like an upside down tree ...
  180. * Structuring Command Types::   How to divide a manual into parts.
  181. * makeinfo top::                The `@top' command, part of the `Top' node.
  182. * chapter::
  183. * unnumbered & appendix::
  184. * majorheading & chapheading::
  185. * section::
  186. * unnumberedsec appendixsec heading::
  187. * subsection::
  188. * unnumberedsubsec appendixsubsec subheading::
  189. * subsubsection::               Commands for the lowest level sections.
  190. * Raise/lower sections::        How to change commands' hierarchical level.
  191.  
  192. Nodes
  193.  
  194. * Two Paths::                   Different commands to structure
  195.                                   Info output and printed output.
  196. * Node Menu Illustration::      A diagram, and sample nodes and menus.
  197. * node::                        Creating nodes, in detail.
  198. * makeinfo Pointer Creation::   Letting makeinfo determine node pointers.
  199. * anchor::                      Defining arbitrary cross-reference targets.
  200.  
  201. The `@node' Command
  202.  
  203. * Node Names::                  How to choose node and pointer names.
  204. * Writing a Node::              How to write an `@node' line.
  205. * Node Line Tips::              Keep names short.
  206. * Node Line Requirements::      Keep names unique, without @-commands.
  207. * First Node::                  How to write a `Top' node.
  208. * makeinfo top command::        How to use the `@top' command.
  209. * Top Node Summary::            Write a brief description for readers.
  210.  
  211. Menus
  212.  
  213. * Menu Location::               Put a menu in a short node.
  214. * Writing a Menu::              What is a menu?
  215. * Menu Parts::                  A menu entry has three parts.
  216. * Less Cluttered Menu Entry::   Two part menu entry.
  217. * Menu Example::                Two and three part menu entries.
  218. * Other Info Files::            How to refer to a different Info file.
  219.  
  220. Cross References
  221.  
  222. * References::                  What cross references are for.
  223. * Cross Reference Commands::    A summary of the different commands.
  224. * Cross Reference Parts::       A cross reference has several parts.
  225. * xref::                        Begin a reference with `See' ...
  226. * Top Node Naming::             How to refer to the beginning of another file.
  227. * ref::                         A reference for the last part of a sentence.
  228. * pxref::                       How to write a parenthetical cross reference.
  229. * inforef::                     How to refer to an Info-only file.
  230. * uref::                        How to refer to a uniform resource locator.
  231.  
  232. `@xref'
  233.  
  234. * Reference Syntax::            What a reference looks like and requires.
  235. * One Argument::                `@xref' with one argument.
  236. * Two Arguments::               `@xref' with two arguments.
  237. * Three Arguments::             `@xref' with three arguments.
  238. * Four and Five Arguments::     `@xref' with four and five arguments.
  239.  
  240. Marking Words and Phrases
  241.  
  242. * Indicating::                  How to indicate definitions, files, etc.
  243. * Emphasis::                    How to emphasize text.
  244.  
  245. Indicating Definitions, Commands, etc.
  246.  
  247. * Useful Highlighting::         Highlighting provides useful information.
  248. * code::                        Indicating program code.
  249. * kbd::                         Showing keyboard input.
  250. * key::                         Specifying keys.
  251. * samp::                        Showing a literal sequence of characters.
  252. * var::                         Indicating metasyntactic variables.
  253. * env::                         Indicating environment variables.
  254. * file::                        Indicating file names.
  255. * command::                     Indicating command names.
  256. * option::                      Indicating option names.
  257. * dfn::                         Specifying definitions.
  258. * cite::                        Referring to books not in the  Info system.
  259. * acronym::                     Indicating acronyms.
  260. * url::                         Indicating a World Wide Web reference.
  261. * email::                       Indicating an electronic mail address.
  262.  
  263. Emphasizing Text
  264.  
  265. * emph & strong::               How to emphasize text in Texinfo.
  266. * Smallcaps::                   How to use the small caps font.
  267. * Fonts::                       Various font commands for printed output.
  268.  
  269. Quotations and Examples
  270.  
  271. * Block Enclosing Commands::    Use different constructs for
  272.                                   different purposes.
  273. * quotation::                   How to write a quotation.
  274. * example::                     How to write an example in a fixed-width font.
  275. * noindent::                    How to prevent paragraph indentation.
  276. * lisp::                        How to illustrate Lisp code.
  277. * small::                       Forms for `@smallbook'.
  278. * display::                     How to write an example in the current font.
  279. * format::                      How to write an example that does not narrow
  280.                                   the margins.
  281. * exdent::                      How to undo the indentation of a line.
  282. * flushleft & flushright::      How to push text flushleft or flushright.
  283. * cartouche::                   How to draw cartouches around examples.
  284.  
  285. Lists and Tables
  286.  
  287. * Introducing Lists::           Texinfo formats lists for you.
  288. * itemize::                     How to construct a simple list.
  289. * enumerate::                   How to construct a numbered list.
  290. * Two-column Tables::           How to construct a two-column table.
  291. * Multi-column Tables::         How to construct generalized tables.
  292.  
  293. Making a Two-column Table
  294.  
  295. * table::                       How to construct a two-column table.
  296. * ftable vtable::               Automatic indexing for two-column tables.
  297. * itemx::                       How to put more entries in the first column.
  298.  
  299. Multi-column Tables
  300.  
  301. * Multitable Column Widths::    Defining multitable column widths.
  302. * Multitable Rows::             Defining multitable rows, with examples.
  303.  
  304. Indices
  305.  
  306. * Index Entries::               Choose different words for index entries.
  307. * Predefined Indices::          Use different indices for different kinds
  308.                                   of entry.
  309. * Indexing Commands::           How to make an index entry.
  310. * Combining Indices::           How to combine indices.
  311. * New Indices::                 How to define your own indices.
  312.  
  313. Combining Indices
  314.  
  315. * syncodeindex::                How to merge two indices, using `@code'
  316.                                   font for the merged-from index.
  317. * synindex::                    How to merge two indices, using the
  318.                                   default font of the merged-to index.
  319.  
  320. Special Insertions
  321.  
  322. * Braces Atsigns::              How to insert braces, `@'.
  323. * Inserting Space::             How to insert the right amount of space
  324.                                   within a sentence.
  325. * Inserting Accents::           How to insert accents and special characters.
  326. * Dots Bullets::                How to insert dots and bullets.
  327. * TeX and copyright::           How to insert the TeX logo
  328.                                   and the copyright symbol.
  329. * pounds::                      How to insert the pounds currency symbol.
  330. * minus::                       How to insert a minus sign.
  331. * math::                        How to format a mathematical expression.
  332. * Glyphs::                      How to indicate results of evaluation,
  333.                                   expansion of macros, errors, etc.
  334. * Footnotes::                   How to include footnotes.
  335. * Images::                      How to include graphics.
  336.  
  337. Inserting @ and Braces
  338.  
  339. * Inserting An Atsign::         How to insert `@'.
  340. * Inserting Braces::            How to insert `{' and `}'.
  341.  
  342. Inserting Space
  343.  
  344. * Not Ending a Sentence::       Sometimes a . doesn't end a sentence.
  345. * Ending a Sentence::           Sometimes it does.
  346. * Multiple Spaces::             Inserting multiple spaces.
  347. * dmn::                         How to format a dimension.
  348.  
  349. Inserting Ellipsis, Dots, and Bullets
  350.  
  351. * dots::                        How to insert dots ...
  352. * bullet::                      How to insert a bullet.
  353.  
  354. Inserting TeX and the Copyright Symbol
  355.  
  356. * tex::                         How to insert the TeX logo.
  357. * copyright symbol::            How to use `@copyright'{}.
  358.  
  359. Glyphs for Examples
  360.  
  361. * Glyphs Summary::
  362. * result::                      How to show the result of expression.
  363. * expansion::                   How to indicate an expansion.
  364. * Print Glyph::                 How to indicate printed output.
  365. * Error Glyph::                 How to indicate an error message.
  366. * Equivalence::                 How to indicate equivalence.
  367. * Point Glyph::                 How to indicate the location of point.
  368.  
  369. Glyphs Summary
  370.  
  371. * result::
  372. * expansion::
  373. * Print Glyph::
  374. * Error Glyph::
  375. * Equivalence::
  376. * Point Glyph::
  377.  
  378. Footnotes
  379.  
  380. * Footnote Commands::           How to write a footnote in Texinfo.
  381. * Footnote Styles::             Controlling how footnotes appear in Info.
  382.  
  383. Making and Preventing Breaks
  384.  
  385. * Break Commands::              Cause and prevent splits.
  386. * Line Breaks::                 How to force a single line to use two lines.
  387. * - and hyphenation::           How to tell TeX about hyphenation points.
  388. * w::                           How to prevent unwanted line breaks.
  389. * sp::                          How to insert blank lines.
  390. * page::                        How to force the start of a new page.
  391. * group::                       How to prevent unwanted page breaks.
  392. * need::                        Another way to prevent unwanted page breaks.
  393.  
  394. Definition Commands
  395.  
  396. * Def Cmd Template::            How to structure a description using a
  397.                                   definition command.
  398. * Optional Arguments::          How to handle optional and repeated arguments.
  399. * deffnx::                      How to group two or more `first' lines.
  400. * Def Cmds in Detail::          All the definition commands.
  401. * Def Cmd Conventions::         Conventions for writing definitions.
  402. * Sample Function Definition::
  403.  
  404. The Definition Commands
  405.  
  406. * Functions Commands::          Commands for functions and similar entities.
  407. * Variables Commands::          Commands for variables and similar entities.
  408. * Typed Functions::             Commands for functions in typed languages.
  409. * Typed Variables::             Commands for variables in typed languages.
  410. * Abstract Objects::            Commands for object-oriented programming.
  411. * Data Types::                  The definition command for data types.
  412.  
  413. Conditionally Visible Text
  414.  
  415. * Conditional Commands::        Specifying text for HTML, Info, or TeX.
  416. * Conditional Not Commands::    Specifying text for not HTML, Info, or TeX.
  417. * Raw Formatter Commands::      Using raw TeX or HTML commands.
  418. * set clear value::             Designating which text to format (for
  419.                                   all output formats); and how to set a
  420.                                   flag to a string that you can insert.
  421.  
  422. `@set', `@clear', and `@value'
  423.  
  424. * ifset ifclear::               Format a region if a flag is set.
  425. * set value::                   Expand a flag variable to a string.
  426. * value Example::               An easy way to update edition information.
  427.  
  428. Internationalization
  429.  
  430. * documentlanguage::            Declaring the current language.
  431. * documentencoding::            Declaring the input encoding.
  432.  
  433. Defining New Texinfo Commands
  434.  
  435. * Defining Macros::             Defining and undefining new commands.
  436. * Invoking Macros::             Using a macro, once you've defined it.
  437. * Macro Details::               Beyond basic macro usage.
  438. * alias::                       Command aliases.
  439. * definfoenclose::              Customized highlighting.
  440.  
  441. Formatting and Printing Hardcopy
  442.  
  443. * Use TeX::                     Use TeX to format for hardcopy.
  444. * Format with tex/texindex::    How to format with explicit shell commands.
  445. * Format with texi2dvi::        A simpler way to format.
  446. * Print with lpr::              How to print.
  447. * Within Emacs::                How to format and print from an Emacs shell.
  448. * Texinfo Mode Printing::       How to format and print in Texinfo mode.
  449. * Compile-Command::             How to print using Emacs's compile command.
  450. * Requirements Summary::        TeX formatting requirements summary.
  451. * Preparing for TeX::           What to do before you use TeX.
  452. * Overfull hboxes::             What are and what to do with overfull hboxes.
  453. * smallbook::                   How to print small format books and manuals.
  454. * A4 Paper::                    How to print on European A4 paper.
  455. * pagesizes::                   How to print with customized page sizes.
  456. * Cropmarks and Magnification::  How to print marks to indicate the size
  457.                                 of pages and how to print scaled up output.
  458. * PDF Output::                  Portable Document Format output.
  459.  
  460. Creating and Installing Info Files
  461.  
  462. * Creating an Info File::
  463. * Install an Info File::
  464.  
  465. Creating an Info File
  466.  
  467. * makeinfo advantages::         `makeinfo' provides better error checking.
  468. * Invoking makeinfo::           How to run `makeinfo' from a shell.
  469. * makeinfo options::            Specify fill-column and other options.
  470. * Pointer Validation::          How to check that pointers point somewhere.
  471. * makeinfo in Emacs::           How to run `makeinfo' from Emacs.
  472. * texinfo-format commands::     Two Info formatting commands written
  473.                                   in Emacs Lisp are an alternative
  474.                                   to `makeinfo'.
  475. * Batch Formatting::            How to format for Info in Emacs Batch mode.
  476. * Tag and Split Files::         How tagged and split files help Info
  477.                                   to run better.
  478. * makeinfo html::               Generating HTML output.
  479.  
  480. Installing an Info File
  481.  
  482. * Directory File::              The top level menu for all Info files.
  483. * New Info File::               Listing a new info file.
  484. * Other Info Directories::      How to specify Info files that are
  485.                                   located in other directories.
  486. * Installing Dir Entries::      How to specify what menu entry to add
  487.                                   to the Info directory.
  488. * Invoking install-info::       `install-info' options.
  489.  
  490. Sample Permissions
  491.  
  492. * Inserting Permissions::       How to put permissions in your document.
  493. * ifinfo Permissions::          Sample `ifinfo' copying permissions.
  494. * Titlepage Permissions::       Sample Titlepage copying permissions.
  495.  
  496. Include Files
  497.  
  498. * Using Include Files::         How to use the `@include' command.
  499. * texinfo-multiple-files-update::  How to create and update nodes and
  500.                                   menus when using included files.
  501. * Include File Requirements::   What `texinfo-multiple-files-update' expects.
  502. * Sample Include File::         A sample outer file with included files
  503.                                   within it; and a sample included file.
  504. * Include Files Evolution::     How use of the `@include' command
  505.                                   has changed over time.
  506.  
  507. Page Headings
  508.  
  509. * Headings Introduced::         Conventions for using page headings.
  510. * Heading Format::              Standard page heading formats.
  511. * Heading Choice::              How to specify the type of page heading.
  512. * Custom Headings::             How to create your own headings and footings.
  513.  
  514. Formatting Mistakes
  515.  
  516. * makeinfo Preferred::          `makeinfo' finds errors.
  517. * Debugging with Info::         How to catch errors with Info formatting.
  518. * Debugging with TeX::          How to catch errors with TeX formatting.
  519. * Using texinfo-show-structure::  How to use `texinfo-show-structure'.
  520. * Using occur::                 How to list all lines containing a pattern.
  521. * Running Info-Validate::       How to find badly referenced nodes.
  522.  
  523. Finding Badly Referenced Nodes
  524.  
  525. * Using Info-validate::         How to run `Info-validate'.
  526. * Unsplit::                     How to create an unsplit file.
  527. * Tagifying::                   How to tagify a file.
  528. * Splitting::                   How to split a file manually.
  529.  
  530.      Documentation is like sex: when it is good, it is very, very good;
  531.      and when it is bad, it is better than nothing.  --Dick Brandon
  532.  
  533. 
  534. File: texinfo,  Node: Copying,  Next: Overview,  Prev: Top,  Up: Top
  535.  
  536. Texinfo Copying Conditions
  537. **************************
  538.  
  539.   The programs currently being distributed that relate to Texinfo
  540. include portions of GNU Emacs, plus other separate programs (including
  541. `makeinfo', `info', `texindex', and `texinfo.tex').  These programs are
  542. "free"; this means that everyone is free to use them and free to
  543. redistribute them on a free basis.  The Texinfo-related programs are
  544. not in the public domain; they are copyrighted and there are
  545. restrictions on their distribution, but these restrictions are designed
  546. to permit everything that a good cooperating citizen would want to do.
  547. What is not allowed is to try to prevent others from further sharing
  548. any version of these programs that they might get from you.
  549.  
  550.   Specifically, we want to make sure that you have the right to give
  551. away copies of the programs that relate to Texinfo, that you receive
  552. source code or else can get it if you want it, that you can change these
  553. programs or use pieces of them in new free programs, and that you know
  554. you can do these things.
  555.  
  556.   To make sure that everyone has such rights, we have to forbid you to
  557. deprive anyone else of these rights.  For example, if you distribute
  558. copies of the Texinfo related programs, you must give the recipients all
  559. the rights that you have.  You must make sure that they, too, receive or
  560. can get the source code.  And you must tell them their rights.
  561.  
  562.   Also, for our own protection, we must make certain that everyone finds
  563. out that there is no warranty for the programs that relate to Texinfo.
  564. If these programs are modified by someone else and passed on, we want
  565. their recipients to know that what they have is not what we distributed,
  566. so that any problems introduced by others will not reflect on our
  567. reputation.
  568.  
  569.   The precise conditions of the licenses for the programs currently
  570. being distributed that relate to Texinfo are found in the General Public
  571. Licenses that accompany them.
  572.  
  573. 
  574. File: texinfo,  Node: Overview,  Next: Texinfo Mode,  Prev: Copying,  Up: Top
  575.  
  576. Overview of Texinfo
  577. *******************
  578.  
  579.   "Texinfo"(1) (*note Overview-Footnote-1::)  is a documentation system
  580. that uses a single source file to produce both online information and
  581. printed output.  This means that instead of writing two different
  582. documents, one for the online information and the other for a printed
  583. work, you need write only one document.  Therefore, when the work is
  584. revised, you need revise only that one document.
  585.  
  586. * Menu:
  587.  
  588. * Reporting Bugs::              Submitting effective bug reports.
  589. * Using Texinfo::               Create printed or online output.
  590. * Info Files::                  What is an Info file?
  591. * Printed Books::               Characteristics of a printed book or manual.
  592. * Formatting Commands::         @-commands are used for formatting.
  593. * Conventions::                 General rules for writing a Texinfo file.
  594. * Comments::                    Writing comments and ignored text in general.
  595. * Minimum::                     What a Texinfo file must have.
  596. * Six Parts::                   Usually, a Texinfo file has six parts.
  597. * Short Sample::                A short sample Texinfo file.
  598. * Acknowledgements and History::  Contributors and genesis.
  599.  
  600. 
  601. File: texinfo,  Node: Overview-Footnotes,  Up: Overview
  602.  
  603.   (1) The first syllable of "Texinfo" is pronounced like "speck", not
  604. "hex".  This odd pronunciation is derived from, but is not the same as,
  605. the pronunciation of TeX.  In the word TeX, the `X' is actually the
  606. Greek letter "chi" rather than the English letter "ex".  Pronounce TeX
  607. as if the `X' were the last sound in the name `Bach'; but pronounce
  608. Texinfo as if the `x' were a `k'.  Spell "Texinfo" with a capital "T"
  609. and the other letters in lower case.
  610.  
  611. 
  612. File: texinfo,  Node: Reporting Bugs,  Next: Using Texinfo,  Up: Overview
  613.  
  614. Reporting Bugs
  615. ==============
  616.  
  617.   We welcome bug reports or suggestions for the Texinfo system, both
  618. programs and documentation.  Please email them to
  619. <bug-texinfo@gnu.org>.  You can get the latest version of Texinfo from
  620. `ftp://ftp.gnu.org/gnu/texinfo/' and its mirrors worldwide.
  621.  
  622.   For bug reports, please include enough information for the maintainers
  623. to reproduce the problem.  Generally speaking, that means:
  624.  
  625.    * the version number of Texinfo and the program(s) or manual(s)
  626.      involved.
  627.  
  628.    * hardware, operating system, and compiler versions.
  629.  
  630.    * any unusual options you gave to `configure'.
  631.  
  632.    * the contents of any input files necessary to reproduce the bug.
  633.  
  634.    * a description of the problem and samples of any erroneous output.
  635.  
  636.    * anything else that you think would be helpful.
  637.  
  638.   When in doubt whether something is needed or not, include it.  It's
  639. better to include too much than to leave out something important.
  640.  
  641.   Patches are most welcome; if possible, please make them with
  642. `diff -c' (*note Overview: (diffutils)Top.) and include `ChangeLog'
  643. entries (*note Change Log: (emacs)Change Log.).
  644.  
  645.   When sending email, please do not encode or split the messages in any
  646. way if possible; it's much easier to deal with one plain text message,
  647. however large, than many small ones.  GNU shar
  648. (ftp://ftp.gnu.org/gnu/sharutils/) is a convenient way of packaging
  649. multiple and/or binary files for email.
  650.  
  651. 
  652. File: texinfo,  Node: Using Texinfo,  Next: Info Files,  Prev: Reporting Bugs,  Up: Overview
  653.  
  654. Using Texinfo
  655. =============
  656.  
  657.   Using Texinfo, you can create a printed document with the normal
  658. features of a book, including chapters, sections, cross references, and
  659. indices.  From the same Texinfo source file, you can create a
  660. menu-driven, online Info file with nodes, menus, cross references, and
  661. indices.  You can also create from that same source file an HTML output
  662. file suitable for use with a web browser.  `The GNU Emacs Manual' is a
  663. good example of a Texinfo file, as is this manual.
  664.  
  665.   To make a printed document, you process a Texinfo source file with the
  666. TeX typesetting program (but the Texinfo language is very different
  667. from TeX's usual language, plain TeX).  This creates a DVI file that
  668. you can typeset and print as a book or report (*note Hardcopy::).
  669.  
  670.   To output an Info file, process your Texinfo source with the
  671. `makeinfo' utility or Emacs's `texinfo-format-buffer' command.  You can
  672. install the result in your Info tree (*note Install an Info File::).
  673.  
  674.   To output an HTML file, process your Texinfo source with `makeinfo'
  675. using the `--html' option.  You can (for example) install the result on
  676. your web site.
  677.  
  678.   If you are a programmer and would like to contribute to the GNU
  679. project by implementing additional output formats for Texinfo, that
  680. would be excellent.  But please do not write a separate translator
  681. texi2foo for your favorite format foo!  That is the hard way to do the
  682. job, and makes extra work in subsequent maintenance, since the Texinfo
  683. language is continually being enhanced and updated.  Instead, the best
  684. approach is modify `makeinfo' to generate the new format, as it does
  685. now for Info and HTML.
  686.  
  687.   TeX works with virtually all printers; Info works with virtually all
  688. computer terminals; the HTML output works with virtually all web
  689. browsers.  Thus Texinfo can be used by almost any computer user.
  690.  
  691.   A Texinfo source file is a plain ASCII file containing text and
  692. "@-commands" (words preceded by an `@') that tell the typesetting and
  693. formatting programs what to do.  You may edit a Texinfo file with any
  694. text editor; but it is especially convenient to use GNU Emacs since
  695. that editor has a special mode, called Texinfo mode, that provides
  696. various Texinfo-related features.  (*Note Texinfo Mode::.)
  697.  
  698.   Before writing a Texinfo source file, you should learn about nodes,
  699. menus, cross references, and the rest, for example by reading this
  700. manual.
  701.  
  702.   You can use Texinfo to create both online help and printed manuals;
  703. moreover, Texinfo is freely redistributable.  For these reasons, Texinfo
  704. is the official documentation format of the GNU project.  More
  705. information is available at the GNU documentation web page
  706. (http://www.gnu.org/doc/).
  707.  
  708.   From time to time, proposals are made to generate traditional Unix man
  709. pages from Texinfo source.  This is not likely to ever be supported,
  710. because man pages have a very strict conventional format.  Merely
  711. enhancing `makeinfo' to output troff format would be insufficient.
  712. Generating a good man page therefore requires a completely different
  713. source than the typical Texinfo applications of generating a good user
  714. manual or a good reference manual.  This makes generating man pages
  715. incompatible with the Texinfo design goal of not having to document the
  716. same information in different ways for different output formats.  You
  717. might as well just write the man page directly.
  718.  
  719.   If you wish to support man pages, the program `help2man' may be
  720. useful; it generates a traditional man page from the `--help' output of
  721. a program.  In fact, this is currently used to generate man pages for
  722. the Texinfo programs themselves.  It is free software written by
  723. Brendan O'Dea, available from
  724. `http://www.ozemail.com.au/~bod/help2man.tar.gz'.
  725.  
  726. 
  727. File: texinfo,  Node: Info Files,  Next: Printed Books,  Prev: Using Texinfo,  Up: Overview
  728.  
  729. Info files
  730. ==========
  731.  
  732.   An Info file is a Texinfo file formatted so that the Info
  733. documentation reading program can operate on it.  (`makeinfo' and
  734. `texinfo-format-buffer' are two commands that convert a Texinfo file
  735. into an Info file.)
  736.  
  737.   Info files are divided into pieces called "nodes", each of which
  738. contains the discussion of one topic.  Each node has a name, and
  739. contains both text for the user to read and pointers to other nodes,
  740. which are identified by their names.  The Info program displays one node
  741. at a time, and provides commands with which the user can move to other
  742. related nodes.
  743.  
  744.   *note info: (info)Top, for more information about using Info.
  745.  
  746.   Each node of an Info file may have any number of child nodes that
  747. describe subtopics of the node's topic.  The names of child nodes are
  748. listed in a "menu" within the parent node; this allows you to use
  749. certain Info commands to move to one of the child nodes.  Generally, an
  750. Info file is organized like a book.  If a node is at the logical level
  751. of a chapter, its child nodes are at the level of sections; likewise,
  752. the child nodes of sections are at the level of subsections.
  753.  
  754.   All the children of any one parent are linked together in a
  755. bidirectional chain of `Next' and `Previous' pointers.  The `Next'
  756. pointer provides a link to the next section, and the `Previous' pointer
  757. provides a link to the previous section.  This means that all the nodes
  758. that are at the level of sections within a chapter are linked together.
  759. Normally the order in this chain is the same as the order of the
  760. children in the parent's menu.  Each child node records the parent node
  761. name as its `Up' pointer.  The last child has no `Next' pointer, and the
  762. first child has the parent both as its `Previous' and as its `Up'
  763. pointer.(1) (*note Info Files-Footnote-1::)
  764.  
  765.   The book-like structuring of an Info file into nodes that correspond
  766. to chapters, sections, and the like is a matter of convention, not a
  767. requirement.  The `Up', `Previous', and `Next' pointers of a node can
  768. point to any other nodes, and a menu can contain any other nodes.
  769. Thus, the node structure can be any directed graph.  But it is usually
  770. more comprehensible to follow a structure that corresponds to the
  771. structure of chapters and sections in a printed book or report.
  772.  
  773.   In addition to menus and to `Next', `Previous', and `Up' pointers,
  774. Info provides pointers of another kind, called references, that can be
  775. sprinkled throughout the text.  This is usually the best way to
  776. represent links that do not fit a hierarchical structure.
  777.  
  778.   Usually, you will design a document so that its nodes match the
  779. structure of chapters and sections in the printed output.  But
  780. occasionally there are times when this is not right for the material
  781. being discussed.  Therefore, Texinfo uses separate commands to specify
  782. the node structure for the Info file and the section structure for the
  783. printed output.
  784.  
  785.   Generally, you enter an Info file through a node that by convention is
  786. named `Top'.  This node normally contains just a brief summary of the
  787. file's purpose, and a large menu through which the rest of the file is
  788. reached.  From this node, you can either traverse the file
  789. systematically by going from node to node, or you can go to a specific
  790. node listed in the main menu, or you can search the index menus and then
  791. go directly to the node that has the information you want.
  792. Alternatively, with the standalone Info program, you can specify
  793. specific menu items on the command line (*note Top: (info)Top.).
  794.  
  795.   If you want to read through an Info file in sequence, as if it were a
  796. printed manual, you can hit <SPC> repeatedly, or you get the whole file
  797. with the advanced Info command `g *'.  (*note Advanced Info commands:
  798. (info)Expert.)
  799.  
  800.   The `dir' file in the `info' directory serves as the departure point
  801. for the whole Info system.  From it, you can reach the `Top' nodes of
  802. each of the documents in a complete Info system.
  803.  
  804.   If you wish to refer to an Info file in a URI, you can use the
  805. (unofficial) syntax exemplified in the following.  This works with
  806. Emacs/W3, for example:
  807.      info:///usr/info/emacs#Dissociated%20Press
  808.      info:emacs#Dissociated%20Press
  809.      info://localhost/usr/info/emacs#Dissociated%20Press
  810.  
  811.   The `info' program itself does not follow URI's of any kind.
  812.  
  813. 
  814. File: texinfo,  Node: Info Files-Footnotes,  Up: Info Files
  815.  
  816.   (1) In some documents, the first child has no `Previous' pointer.
  817. Occasionally, the last child has the node name of the next following
  818. higher level node as its `Next' pointer.
  819.  
  820. 
  821. File: texinfo,  Node: Printed Books,  Next: Formatting Commands,  Prev: Info Files,  Up: Overview
  822.  
  823. Printed Books
  824. =============
  825.  
  826.   A Texinfo file can be formatted and typeset as a printed book or
  827. manual.  To do this, you need TeX, a powerful, sophisticated typesetting
  828. program written by Donald Knuth.(1) (*note Printed Books-Footnote-1::)
  829.  
  830.   A Texinfo-based book is similar to any other typeset, printed work: it
  831. can have a title page, copyright page, table of contents, and preface,
  832. as well as chapters, numbered or unnumbered sections and subsections,
  833. page headers, cross references, footnotes, and indices.
  834.  
  835.   You can use Texinfo to write a book without ever having the intention
  836. of converting it into online information.  You can use Texinfo for
  837. writing a printed novel, and even to write a printed memo, although
  838. this latter application is not recommended since electronic mail is so
  839. much easier.
  840.  
  841.   TeX is a general purpose typesetting program.  Texinfo provides a
  842. file `texinfo.tex' that contains information (definitions or "macros")
  843. that TeX uses when it typesets a Texinfo file.  (`texinfo.tex' tells
  844. TeX how to convert the Texinfo @-commands to TeX commands, which TeX
  845. can then process to create the typeset document.)  `texinfo.tex'
  846. contains the specifications for printing a document.  You can get the
  847. latest version of `texinfo.tex' from
  848. `ftp://ftp.gnu.org/gnu/texinfo.tex'.
  849.  
  850.   Most often, documents are printed on 8.5 inch by 11 inch pages (216mm
  851. by 280mm; this is the default size), but you can also print for 7 inch
  852. by 9.25 inch pages (178mm by 235mm; the `@smallbook' size) or on
  853. European A4 size paper (`@afourpaper').  (*Note Printing "Small" Books:
  854. smallbook.  Also, see *Note Printing on A4 Paper: A4 Paper.)
  855.  
  856.   By changing the parameters in `texinfo.tex', you can change the size
  857. of the printed document.  In addition, you can change the style in
  858. which the printed document is formatted; for example, you can change the
  859. sizes and fonts used, the amount of indentation for each paragraph, the
  860. degree to which words are hyphenated, and the like.  By changing the
  861. specifications, you can make a book look dignified, old and serious, or
  862. light-hearted, young and cheery.
  863.  
  864.   TeX is freely distributable.  It is written in a superset of Pascal
  865. called WEB and can be compiled either in Pascal or (by using a
  866. conversion program that comes with the TeX distribution) in C.  (*Note
  867. TeX Mode: (emacs)TeX Mode, for information about TeX.)
  868.  
  869.   TeX is very powerful and has a great many features.  Because a
  870. Texinfo file must be able to present information both on a
  871. character-only terminal in Info form and in a typeset book, the
  872. formatting commands that Texinfo supports are necessarily limited.
  873.  
  874.   To get a copy of TeX, see *Note How to Obtain TeX: Obtaining TeX.
  875.  
  876. 
  877. File: texinfo,  Node: Printed Books-Footnotes,  Up: Printed Books
  878.  
  879.   (1) You can also use the `texi2roff' (ftp://tug.org/texi2roff.tar.gz)
  880. program if you do not have TeX; since Texinfo is designed for use with
  881. TeX, `texi2roff' is not described here.  `texi2roff' is not part of the
  882. standard GNU distribution and is not maintained or up-to-date with all
  883. the Texinfo features described in this manual.
  884.  
  885. 
  886. File: texinfo,  Node: Formatting Commands,  Next: Conventions,  Prev: Printed Books,  Up: Overview
  887.  
  888. @-commands
  889. ==========
  890.  
  891.   In a Texinfo file, the commands that tell TeX how to typeset the
  892. printed manual and tell `makeinfo' and `texinfo-format-buffer' how to
  893. create an Info file are preceded by `@'; they are called "@-commands".
  894. For example, `@node' is the command to indicate a node and `@chapter'
  895. is the command to indicate the start of a chapter.
  896.  
  897.      *Please note:* All the @-commands, with the exception of the
  898.      `@TeX{}' command, must be written entirely in lower case.
  899.  
  900.   The Texinfo @-commands are a strictly limited set of constructs.  The
  901. strict limits make it possible for Texinfo files to be understood both
  902. by TeX and by the code that converts them into Info files.  You can
  903. display Info files on any terminal that displays alphabetic and numeric
  904. characters.  Similarly, you can print the output generated by TeX on a
  905. wide variety of printers.
  906.  
  907.   Depending on what they do or what arguments(1) (*note Formatting
  908. Commands-Footnote-1::) they take, you need to write @-commands on lines
  909. of their own or as part of sentences:
  910.  
  911.    * Write a command such as `@noindent' at the beginning of a line as
  912.      the only text on the line.  (`@noindent' prevents the beginning of
  913.      the next line from being indented as the beginning of a paragraph.)
  914.  
  915.    * Write a command such as `@chapter' at the beginning of a line
  916.      followed by the command's arguments, in this case the chapter
  917.      title, on the rest of the line.  (`@chapter' creates chapter
  918.      titles.)
  919.  
  920.    * Write a command such as `@dots{}' wherever you wish but usually
  921.      within a sentence. (`@dots{}' creates dots ...)
  922.  
  923.    * Write a command such as `@code{SAMPLE-CODE}' wherever you wish
  924.      (but usually within a sentence) with its argument, SAMPLE-CODE in
  925.      this example, between the braces.  (`@code' marks text as being
  926.      code.)
  927.  
  928.    * Write a command such as `@example' on a line of its own; write the
  929.      body-text on following lines; and write the matching `@end'
  930.      command, `@end example' in this case, at the on a line of its own
  931.      after the body-text. (`@example' ... `@end example' indents and
  932.      typesets body-text as an example.)  It's usually ok to indent
  933.      environment commands like this, but in complicated and
  934.      hard-to-define circumstances the extra spaces cause extra space to
  935.      appear in the output, so beware.
  936.  
  937. As a general rule, a command requires braces if it mingles among other
  938. text; but it does not need braces if it starts a line of its own.  The
  939. non-alphabetic commands, such as `@:', are exceptions to the rule; they
  940. do not need braces.
  941.  
  942.   As you gain experience with Texinfo, you will rapidly learn how to
  943. write the different commands: the different ways to write commands make
  944. it easier to write and read Texinfo files than if all commands followed
  945. exactly the same syntax.  (For details about @-command syntax, see
  946. *Note @-Command Syntax: Command Syntax.)
  947.  
  948. 
  949. File: texinfo,  Node: Formatting Commands-Footnotes,  Up: Formatting Commands
  950.  
  951.   (1) The word "argument" comes from the way it is used in mathematics
  952. and does not refer to a dispute between two people; it refers to the
  953. information presented to the command.  According to the `Oxford English
  954. Dictionary', the word derives from the Latin for "to make clear,
  955. prove"; thus it came to mean `the evidence offered as proof', which is
  956. to say, `the information offered', which led to its mathematical
  957. meaning.  In its other thread of derivation, the word came to mean `to
  958. assert in a manner against which others may make counter assertions',
  959. which led to the meaning of `argument' as a dispute.
  960.  
  961. 
  962. File: texinfo,  Node: Conventions,  Next: Comments,  Prev: Formatting Commands,  Up: Overview
  963.  
  964. General Syntactic Conventions
  965. =============================
  966.  
  967.   This section describes the general conventions used in all Texinfo
  968. documents.
  969.  
  970.    * All printable ASCII characters except `@', `{' and `}' can appear
  971.      in a Texinfo file and stand for themselves.  `@' is the escape
  972.      character which introduces commands.  `{' and `}' should be used
  973.      only to surround arguments to certain commands.  To put one of
  974.      these special characters into the document, put an `@' character
  975.      in front of it, like this: `@@', `@{', and `@}'.
  976.  
  977.    * It is customary in TeX to use doubled single-quote characters to
  978.      begin and end quotations: ` ` and ' ' (but without a space between
  979.      the two single-quote characters).  This convention should be
  980.      followed in Texinfo files.  TeX converts doubled single-quote
  981.      characters to left- and right-hand doubled quotation marks and
  982.      Info converts doubled single-quote characters to ASCII
  983.      double-quotes: ` ` and ' ' to " .
  984.  
  985.    * Use three hyphens in a row, `---', for a dash--like this.  In TeX,
  986.      a single or double hyphen produces a printed dash that is shorter
  987.      than the usual typeset dash. Info reduces three hyphens to two for
  988.      display on the screen.
  989.  
  990.    * To prevent a paragraph from being indented in the printed manual,
  991.      put the command `@noindent' on a line by itself before the
  992.      paragraph.
  993.  
  994.    * If you mark off a region of the Texinfo file with the `@iftex' and
  995.      `@end iftex' commands, that region will appear only in the printed
  996.      copy; in that region, you can use certain commands borrowed from
  997.      plain TeX that you cannot use in Info.  Likewise, if you mark off
  998.      a region with the `@ifinfo' and `@end ifinfo' commands, that
  999.      region will appear only in the Info file; in that region, you can
  1000.      use Info commands that you cannot use in TeX.  Similarly for
  1001.      `@ifhtml ... @end ifhtml', `@ifnothtml ... @end ifnothtml',
  1002.      `@ifnotinfo ... @end ifnotinfo', `@ifnottex ... @end ifnottex'.
  1003.      *Note Conditionals::.
  1004.  
  1005.      *Caution:* Do not use tabs in a Texinfo file!  TeX uses
  1006.      variable-width fonts, which means that it cannot predefine a tab
  1007.      to work in all circumstances.  Consequently, TeX treats tabs like
  1008.      single spaces, and that is not what they look like.  Furthermore,
  1009.      `makeinfo' does nothing special with tabs, and thus a tab character
  1010.      in your input file may appear differently in the output.
  1011.  
  1012.      To avoid this problem, Texinfo mode causes GNU Emacs to insert
  1013.      multiple spaces when you press the <TAB> key.
  1014.  
  1015.      Also, you can run `untabify' in Emacs to convert tabs in a region
  1016.      to multiple spaces.
  1017.  
  1018. 
  1019. File: texinfo,  Node: Comments,  Next: Minimum,  Prev: Conventions,  Up: Overview
  1020.  
  1021. Comments
  1022. ========
  1023.  
  1024.   You can write comments in a Texinfo file that will not appear in
  1025. either the Info file or the printed manual by using the `@comment'
  1026. command (which may be abbreviated to `@c').  Such comments are for the
  1027. person who revises the Texinfo file.  All the text on a line that
  1028. follows either `@comment' or `@c' is a comment; the rest of the line
  1029. does not appear in either the Info file or the printed manual. (Often,
  1030. you can write the `@comment' or `@c' in the middle of a line, and only
  1031. the text that follows after the `@comment' or `@c' command does not
  1032. appear; but some commands, such as `@settitle' and `@setfilename', work
  1033. on a whole line.  You cannot use `@comment' or `@c' in a line beginning
  1034. with such a command.)
  1035.  
  1036.   You can write long stretches of text that will not appear in either
  1037. the Info file or the printed manual by using the `@ignore' and `@end
  1038. ignore' commands.  Write each of these commands on a line of its own,
  1039. starting each command at the beginning of the line.  Text between these
  1040. two commands does not appear in the processed output.  You can use
  1041. `@ignore' and `@end ignore' for writing comments.  Often, `@ignore' and
  1042. `@end ignore' is used to enclose a part of the copying permissions that
  1043. applies to the Texinfo source file of a document, but not to the Info
  1044. or printed version of the document.
  1045.  
  1046.